$('button').click(function () {
[1, 2, 3, 4, 5].forEach(function (n) {
if (n == 3) {
// it should break out here and doesn't alert anything after
return false
}
alert(n)
})
})
我的问题:虽然我打电话,为什么它仍会提醒下一个号码return
?就像:忽略下面的代码并继续下一个元素
来自Mozilla开发者网络:
forEach()
除了抛出异常之外,没有办法阻止或破坏循环.如果您需要这样的行为,该forEach()
方法是错误的工具.提前终止可通过以下方式完成:
一个简单的循环
一个
for
......of
循环
Array.prototype.every()
Array.prototype.some()
Array.prototype.find()
Array.prototype.findIndex()
另一个阵列的方法:
every()
,some()
,find()
,和findIndex()
测试使用谓词返回truthy值的数组元素,以确定是否需要进一步的迭代.
在return
退出当前功能,但反复不断,所以你得到的"下一个"项目是跳过if
和警报的4 ...
如果你需要停止循环,你应该使用如下的普通for
循环:
$('button').click(function () { var arr = [1, 2, 3, 4, 5]; for(var i = 0; i < arr.length; i++) { var n = arr[i]; if (n == 3) { break; } alert(n); }) })
你可以在这里阅读更多关于js break&continue的信息:http://www.w3schools.com/js/js_break.asp